#include "HC-SR0.h"
#include "timer.h"
#include "usart.h"

void HC_SR0_init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;

	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);

	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_11;
	GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;
	GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP; 
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStruct);

	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_12;
	GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;
	GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP; 
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStruct);

	GPIO_ResetBits(GPIOA, GPIO_Pin_12);
	
}
int32_t get_distance(void)
{
	u32 i=0,j=0;
	GPIO_SetBits(GPIOA, GPIO_Pin_12);
	delay_us(20);
	GPIO_ResetBits(GPIOA, GPIO_Pin_12);
	delay_us(20);

	while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11)==RESET){
		i++;
		delay_us(1);
		if(i>100000){
			printf("\r1111\r\n");
			return -1;
			
		}
	}
	i=0;
	while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11)==SET){
		i++;
		delay_us(9);//3mm距离
//		if(i>100000){
//			
//			printf("\r222\r\n");
//			return -2;
//		}
	}
	i=i/2;
	j=3*i;
	printf("\r-1%d1-\r\n",j);
	return j;
	
}


